package core

import (
	"fmt"
)


// 当前先在代码中定义支持的操作类型，后续可以扩展为配置文件或数据库中读取
var (
	ECHO = Action{
		Name:        "echo",
		Description: "打印消息到控制台",
		Handler: func(data string) {
			fmt.Println("Echo:", data)
		},
	}
	RUN  = Action{
		Name:        "run",
		Description: "执行指定的shell命令",
		Handler: func(data string) {

		},
	}
)









// Action 定义操作类型
type Action struct {
	Name        string
	Description string
	Handler     func(data string)
}

// 动作注册表
var actionRegistry = map[string]Action{}

// RegisterAction 注册新操作
func RegisterAction(action Action) {
	actionRegistry[action.Name] = action
}

// GetActionNames 获取所有支持的操作（带说明）
func GetActionNames() []string {
	var actions []string
	for _, a := range actionRegistry {
		actions = append(actions, fmt.Sprintf("%s - %s", a.Name, a.Description))
	}
	return actions
}

// GetAction 获取具体的操作
func GetAction(name string) (Action, bool) {
	a, ok := actionRegistry[name]
	return a, ok
}
